home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-01-26 | 65.0 KB | 4 lines | [paig/pgdm] |
- 00000000005A000000007181000-14844E40Å2240-2Ç64F564F964F564F92E380ÇÇ6A4844E421CFFFFÅÅ0000100000BD70000002C030D840ÅÇÅÇ6A4C1A121C2F402-240001961221A11B230D81F840ÅÇÅÇ1A14C3A521C4EE02-2400139A1223A51F481FCE3840ÅÇÅÇ3A54C4AD21C4B802-240014A21224AD164CE3119C840ÅÇÅÇ4AD4C62621C48F02-2400261B122626218119C1661840ÅÇÅÇ6264C75421C4AF02-240027491227541A016611C13840ÅÇÅÇ7544C8F921C59102-280038EE1228F91E21C1321A3840ÅÇÅÇ8F94CA6921C57702-24003A5E122A691B221A327B2840ÅÇÅÇA694CC5521C5F702-24004C4A122C551AC27B22D5F840ÅÇÅÇC554CDEB21C5AC02-22004DE04CDEB4C2D5F3557840ÅÇÅÇDEB4C107721C7F702-22005106C4C10774C35573D51840ÅÇÅÇ10774C134421C7F902-2200613394C13444C3D5143F2840ÅÇÅÇ13444C155821C69102-24007154D122155817C43F249F2840ÅÇÅÇ15584C172321C5E002-24008171812217231DC49F25034840ÅÇÅÇ17234818F821C62102-2800818ED15418F821450345694840ÅÇÅÇ18F84C1ABC21C64202-280091AB11661ABC21456945E70840ÅÇÅÇ1ABC4C1CB321C7D302-2400A1CA81221CB31525E70638E840ÅÇÅÇ1CB34C1DFD21C4F502-2800A1DF21241DFD214638E68CD840ÅÇÅÇ1DFD4C1FD321C51D02-2800B1FC814E1FD321468CD6E05840ÅÇÅÇ1FD34C228521C53702-2800C227AD62285D66E05734A840ÅÇÅÇ22854C249A21C53602-2200C248F4C249AA0734A7780840ÅÇÅÇ249A4C25F221C41B02-2800D25E717825F221477807BC5840ÅÇÅÇ25F24C279F21C42A02-2800D2794178279F2147BC58008840ÅÇÅÇ27F44B294321C43202-2800E29381B4294321480088431840ÅÇÅÇ29434C2B4021C40A02-2800F2B351602B402148431884A840ÅÇÅÇ2B404C2C8A21C41802-2800F2C7FD62C8AD6884A8C8E840ÅÇÅÇ2C8A4C2E1E21C44302-2200102E134C2E1E4C8C8E90D2840ÅÇÅÇ2E1E4C2F7321C43302-2200102F684C2F73AC90D2951F840ÅÇÅÇ2F734C313321C42E02-28001131281603133214951F9945840ÅÇÅÇ31334C322521C40402-280011321A14E322521499459D75840ÅÇÅÇ32254C33BE21C42F02-28001233B314A33BE14A9D75A19A840ÅÇÅÇ33BE4C351D21C41402-22001235124C351DACA19AA5C4840ÅÇÅÇ351D4C368121C40B02-28001336761603681214A5C4A9FC840ÅÇÅÇ36814C37B421C40E02-28001337A911E37B4214A9FCAE0E840ÅÇÅÇ37B44C390721C3F102-28001438FC1543907214AE0EB262840ÅÇÅÇ39074C3A1421C43D02-2800143A091903A14214B262B693840ÅÇÅÇ3A144C3B1C21C42E02-2400143B111223B1C12EB693BAE2840ÅÇÅÇ3B1C4C3CAB21C43602-2800153CA01843CAB214BAE2BEF7840ÅÇÅÇ3CAB4C3DA821C3EA02-2800153D9D1183DA8214BEF7C2FF840ÅÇÅÇ3DA84C3EB821C3E702-2800163EAD1543EB8214C2FFC71A840ÅÇÅÇ3EB84C3FEB21C41A02-2200163FE04C3FEB4CC71ACB4F840ÅÇÅÇ3FEB4C410921C40A02-28001640FE1184109214CB4FCF59840ÅÇÅÇ41094C422521C3E402-280017421A1364225214CF59D3D7840ÅÇÅÇ42254C432221C46102-280017431716C4322214D3D7D876860ÅÇÅÇ43224C450621C48602-640018444A4C4456CF00020000031300000000 30D,PAIGE™Application Programmer Interface (API)© 1993-4 DataPak Software, Inc. All Rights ReservedNOTE: A complete description of the functions is available in the PAIGE™ Programmer's Guide. Contact DataPak Software Marketing for a copy, available for nominal charge.Summary of FunctionsInitialization, Maintenance & ShutdownPG_PASCAL (void) pgInit (pg_globals_ptr globals, long max_memory);PG_PASCAL (void) pgShutdown (pg_globals_ptr globals);PG_PASCAL (pg_globals_ptr) pgGetGlobals (pg_ref pg);PG_PASCAL (void) pgSetDefaultDevice (pg_ref pg, graf_device_ptr device);PG_PASCAL (void) pgGetDefaultDevice (pg_ref pg, graf_device_ptr device);PG_PASCAL (void) pgInitDevice (pg_globals_ptr globals, void PG_FAR *the_port, long machine_ref, graf_device_ptr device);0002000005180000030D 512,PG_PASCAL (void) pgCloseDevice (pg_globals_ptr globals, graf_device_ptr device);New & DisposePG_PASCAL (pg_ref) pgNew (pg_globals_ptr globals, shape_ref vis_area, shape_ref page_area, shape_ref exclude_area, long attributes, style_info_ptr def_style, font_info_ptr def_font, par_info_ptr def_ruler);PG_PASCAL (void) pgDispose (pg_ref pg);PG_PASCAL (pg_ref) pgNewShell (pg_globals_ptr globals);PG_PASCAL (pg_ref) pgDuplicate (pg_ref pg);Setting HooksPG_PASCAL (void) pgSetHooks (pg_ref pg, pg_hooks PG_FAR *hooks, short inval_text);PG_PASCAL (void) pgGetHooks (pg_ref pg, pg_hooks PG_FAR *hooks);PG_PASCAL (void) pgSetStyleProcs (pg_ref pg, pg_style_hooks PG_FAR *procs, style_info_ptr match_style, style_info_ptr mask_style, style_info_ptr AND_style, long user_data, long user_id, short inval_text, short draw_mode);PG_PASCAL (void) pgSetParProcs (pg_ref pg, pg_par_hooks PG_FAR *procs, par_info_ptr match_style, par_info_ptr mask_style, par_info_ptr AND_style, long user_data, long user_id, short inval_text, short draw_mode);Changing Shapes & AttributesPG_PASCAL (void) pgSetAreas (pg_ref pg, shape_ref vis_area, shape_ref page_area, shape_ref exclude_area);PG_PASCAL (void) pgGetAreas (pg_ref pg, shape_ref vis_area, shape_ref page_area, shape_ref exclude_area);0002000004CA0000081F 4C4,PG_PASCAL (void) pgAreaBounds (pg_ref pg, rectangle_ptr page_bounds, rectangle_ptr vis_bounds);PG_PASCAL (long) pgGetAttributes (pg_ref pg);PG_PASCAL (short) pgSetAttributes (pg_ref pg, long attributes);PG_PASCAL (void) pgGrowVisArea (pg_ref pg, co_ordinate_ptr top_left, co_ordinate_ptr bot_right);PG_PASCAL (void) pgSetExtraStruct (pg_ref pg, void PG_FAR *extra_struct, short ref_id);PG_PASCAL (void PG_FAR *) pgGetExtraStruct (pg_ref pg, short ref_id);PG_PASCAL (short) pgExtraUniqueID (pg_ref pg);PG_PASCAL (void) pgOffsetShape (shape_ref the_shape, long h, long v);PG_PASCAL (void) pgInsetShape (shape_ref the_shape, long h, long v);PG_PASCAL (pg_short_t) pgPtInShape (shape_ref the_shape, co_ordinate_ptr point, co_ordinate_ptr offset_extra);PG_PASCAL (short) pgRectInShape (shape_ref the_shape, rectangle_ptr rect, co_ordinate_ptr offset_extra, rectangle_ptr sect_rect);PG_PASCAL (void) pgShapeToSelections (pg_ref pg, shape_ref the_shape, memory_ref selections);PG_PASCAL (short) pgEmptyShape (shape_ref the_shape);PG_PASCAL (short) pgEqualShapes (shape_ref shape1, shape_ref shape2);PG_PASCAL (pg_short_t) pgSectRectInShape (shape_ref the_shape, rectangle_ptr rect, rectangle_ptr sect_rect);0002000004BF00000CE3 4B9,PG_PASCAL (void) pgShapeBounds (shape_ref the_shape, rectangle_ptr bounds);PG_PASCAL (short) pgSectShape (shape_ref shape1, shape_ref shape2, shape_ref result_shape);PG_PASCAL (void) pgDiffShape (shape_ref shape1, shape_ref shape2, shape_ref result_shape);PG_PASCAL (shape_ref) pgRectToShape (pg_globals_ptr globals, rectangle_ptr rect);PG_PASCAL (void) pgAddRectToShape(shape_ref the_shape,rectangle_ptr rect);PG_PASCAL (void) pgSetShapeRect (shape_ref the_shape, rectangle_ptr rect);PG_PASCAL (void) pgEraseShape (shape_ref the_shape, pg_scale_ptr scale_factor, co_ordinate_ptr offset_extra, shape_section_ptr top_start, shape_section_ptr bottom_end);PG_PASCAL (void) pgDisposeShape (shape_ref the_shape);Display, Keyboard, SelectionPG_PASCAL (void) pgDisplay (pg_ref pg, graf_device_ptr target_device, shape_ref vis_target, shape_ref wrap_target, co_ordinate_ptr offset_extra, short draw_mode);PG_PASCAL (void) pgInsert (pg_ref pg, pg_byte_ptr data, long length, long position, short insert_mode, short modifiers, short draw_mode);PG_PASCAL (void) pgIdle (pg_ref pg);PG_PASCAL (long) pgDragSelect (pg_ref pg, co_ordinate_ptr location, short verb, short modifiers,short auto_scroll);0002000004CB0000119C 4C5,PG_PASCAL (void) pgSetHiliteStates (pg_ref pg, short front_back_state, short perm_state, short should_draw);PG_PASCAL (void) pgGetHiliteStates (pg_ref pg, short PG_FAR *front_back_state, short PG_FAR *perm_state);PG_PASCAL (void) pgGetSelection (pg_ref pg, long PG_FAR *begin_sel, long PG_FAR *end_sel);PG_PASCAL (void) pgSetSelection (pg_ref pg, long begin_sel, long end_sel, short modifiers, short should_draw);PG_PASCAL (memory_ref) pgGetSelectionList (pg_ref pg,short for_paragraph);PG_PASCAL (void) pgSetSelectionList (pg_ref pg, memory_ref select_list, long extra_offset, short should_draw);PG_PASCAL (void) pgExtendSelection (pg_ref pg, long amount_ext, short modifiers, short should_draw);PG_PASCAL (short) pgGetHiliteRgn (pg_ref pg, select_pair_ptr range, memory_ref select_list, shape_ref rgn);PG_PASCAL (pg_short_t) pgNumSelections (pg_ref pg);PG_PASCAL (short) pgCaretPosition (pg_ref pg, long offset, rectangle_ptr caret_rect);PG_PASCAL (void) pgSetCursorState (pg_ref pg, short cursor_state);PG_PASCAL (short) pgGetCursorState (pg_ref pg);Text FormattingPG_PASCAL (long) pgGetStyleInfo (pg_ref pg, select_pair_ptr selection, short set_any_match, style_info_ptr info, style_info_ptr mask);0002000005B800001661 5B2,PG_PASCAL (short) pgFindStyleInfo (pg_ref pg, long PG_FAR *begin_position, long PG_FAR *end_position, style_info_ptr match_style, style_info_ptr mask, style_info_ptr AND_mask);PG_PASCAL (void) pgSetStyleInfo (pg_ref pg, select_pair_ptr selection, style_info_ptr info, style_info_ptr mask, short draw_mode);PG_PASCAL (short) pgGetStyleClassInfo (pg_ref pg, long position, select_pair_ptr style_range);PG_PASCAL (void) pgSetStyleClassInfo (pg_ref pg, select_pair_ptr range, short class_AND, short class_OR, short draw_mode);PG_PASCAL (void) pgSetInsertionStyles (pg_ref pg, style_info_ptr style, font_info_ptr font);PG_PASCAL (long) pgGetParInfo (pg_ref pg, select_pair_ptr selection, short set_any_match, par_info_ptr info, par_info_ptr mask);PG_PASCAL (void) pgSetParInfo (pg_ref pg, select_pair_ptr selection, par_info_ptr info, par_info_ptr mask, short draw_mode);PG_PASCAL (void) pgSetFontInfo (pg_ref pg, select_pair_ptr selection, font_info_ptr info, font_info_ptr mask, short draw_mode);PG_PASCAL (long) pgGetFontInfo (pg_ref pg, select_pair_ptr selection, short set_any_match, font_info_ptr info, font_info_ptr mask);PG_PASCAL (memory_ref) pgGetFontTable (pg_ref pg);PG_PASCAL (void) pgInitStyleMask (style_info_ptr mask, short filler);PG_PASCAL (void) pgInitParMask (par_info_ptr mask, short filler);PG_PASCAL (void) pgInitFontMask (font_info_ptr mask, short filler);PG_PASCAL (void) pgInitStyleProcs (pg_style_hooks PG_FAR *procs);00020000059600001C13 590,PG_PASCAL (void) pgInitParStyleProcs (pg_par_hooks PG_FAR *procs);PG_PASCAL (long) pgPtToStyleInfo (pg_ref pg, co_ordinate_ptr point, style_info_ptr style, select_pair_ptr range);PG_PASCAL (void) pgGetStyleInfoRec (pg_ref pg, short style_item, style_info_ptr format);PG_PASCAL (void) pgGetParInfoRec (pg_ref pg, short style_item, par_info_ptr format);PG_PASCAL (void) pgGetFontInfoRec (pg_ref pg, short font_index, font_info_ptr info);Style SheetsPG_PASCAL (short) pgNewStyle (pg_ref pg, style_info_ptr new_style, font_info_ptr style_font);PG_PASCAL (void) pgRemoveStyle (pg_ref pg, short style_id);PG_PASCAL (short) pgNumStyles (pg_ref pg);PG_PASCAL (short) pgGetStyle (pg_ref pg, short style_id, style_info_ptr style);PG_PASCAL (void) pgChangeStyle (pg_ref pg, short style_id, style_info_ptr style, font_info_ptr style_font, short draw_mode);PG_PASCAL (void) pgSetStyleSheet (pg_ref pg, select_pair_ptr selection, short style_id, short draw_mode);PG_PASCAL (short) pgGetStyleSheet (pg_ref pg, select_pair_ptr selection, short PG_FAR *style_id);PG_PASCAL (short) pgNewParStyle (pg_ref pg, par_info_ptr new_style);PG_PASCAL (void) pgRemoveParStyle (pg_ref pg, short style_id);PG_PASCAL (short) pgNumParStyles (pg_ref pg);PG_PASCAL (short) pgGetParStyle (pg_ref pg, short style_id, par_info_ptr style);PG_PASCAL (void) pgChangeParStyle (pg_ref pg, short style_id, par_info_ptr style, short draw_mode);000200000615000021A3 60F,PG_PASCAL (void) pgSetParStyleSheet (pg_ref pg, select_pair_ptr selection, short style_id, short draw_mode);PG_PASCAL (short) pgGetParStyleSheet (pg_ref pg, select_pair_ptr selection, short PG_FAR *style_id);Cut, Copy, Paste, UndoPG_PASCAL (pg_ref) pgCut (pg_ref pg, select_pair_ptr selection, short draw_mode);PG_PASCAL (pg_ref) pgCopy (pg_ref pg, select_pair_ptr selection);PG_PASCAL (text_ref) pgCopyText (pg_ref pg, select_pair_ptr selection, short data_type);PG_PASCAL (void) pgPaste (pg_ref pg, pg_ref paste_ref, long position, short text_only, short draw_mode);PG_PASCAL (void) pgDelete (pg_ref pg, select_pair_ptr delete_range, short draw_mode);PG_PASCAL (undo_ref) pgPrepareUndo (pg_ref pg,short verb,pg_ref paste_ref);PG_PASCAL (undo_ref) pgPrepareInsertUndo (pg_ref pg, undo_ref last_undo, pg_byte_ptr data, long length, short insert_mode, short modifiers);PG_PASCAL (undo_ref) pgUndo (pg_ref pg, undo_ref ref, short requires_redo, short draw_mode);PG_PASCAL (short) pgUndoType (undo_ref ref);PG_PASCAL (void) pgSetUndoRefCon (undo_ref ref, long refCon);PG_PASCAL (long) pgGetUndoRefCon (undo_ref ref);PG_PASCAL (void) pgDisposeUndo (undo_ref ref);Tabs & “Ruler” SupportPG_PASCAL (void) pgSetTabBase (pg_ref pg, long tab_base);PG_PASCAL (long) pgGetTabBase (pg_ref pg);PG_PASCAL (void) pgSetTab (pg_ref pg, select_pair_ptr selection, tab_stop_ptr tab, short draw_mode);PG_PASCAL (void) pgGetTabList (pg_ref pg, select_pair_ptr selection, tab_ref tabs, memory_ref tab_mask, long PG_FAR *screen_offset);0002000005B3000027B2 5AD,PG_PASCAL (void) pgSetTabList (pg_ref pg, select_pair_ptr selection, tab_ref tabs, memory_ref tab_mask, short draw_mode);PG_PASCAL (long) pgParMaxWidth (pg_ref pg, long position);PG_PASCAL (void) pgGetIndents (pg_ref pg, select_pair_ptr selection, pg_indents_ptr indents, pg_indents_ptr mask, long PG_FAR *left_screen_offset, long PG_FAR *right_screen_offset);PG_PASCAL (void) pgSetIndents (pg_ref pg, select_pair_ptr selection, pg_indents_ptr indents, pg_indents_ptr mask, short draw_mode);ScrollingPG_PASCAL (void) pgSetScrollParams (pg_ref pg, short unit_h, short unit_v, short append_h, short append_v);PG_PASCAL (void) pgGetScrollParams (pg_ref pg, short PG_FAR *unit_h, short PG_FAR *unit_v, short PG_FAR *append_h, short PG_FAR *append_v);PG_PASCAL (short) pgGetScrollValues (pg_ref pg, short PG_FAR *h, short PG_FAR *v, short PG_FAR *max_h, short PG_FAR *max_v);PG_PASCAL (void) pgSetScrollValues (pg_ref pg, short h, short v, short align_line, short draw_mode);PG_PASCAL (void) pgScroll (pg_ref pg, short h_verb, short v_verb, short draw_mode);PG_PASCAL (short) pgAdjustScrollMax (pg_ref pg, short draw_mode);PG_PASCAL (short) pgScrollToView (pg_ref pg, long text_offset, short h_extra, short v_extra, short align_line, short draw_mode);PG_PASCAL (void) pgScrollPosition (pg_ref pg, co_ordinate_ptr scroll_pos);PG_PASCAL (void) pgScrollPixels (pg_ref pg, long h, long v, short draw_mode);Special Text & Chars Utilities0002000007FE00002D5F 7F8,PG_PASCAL (pg_byte_ptr) pgExamineText (pg_ref pg, long offset, text_ref *text, long PG_FAR *length);PG_PASCAL (long) pgNumTextblocks (pg_ref pg);PG_PASCAL (long) pgGetTextblock (pg_ref pg, long offset, text_block_ptr block, short want_pagination);PG_PASCAL (long) pgCharType (pg_ref pg, long offset);PG_PASCAL (pg_short_t) pgCharByte (pg_ref pg, long offset, short PG_FAR *char_bytes);PG_PASCAL (long) pgTextSize (pg_ref pg);PG_PASCAL (void) pgFindWord (pg_ref pg, long offset, long PG_FAR *first_byte, long PG_FAR *last_byte, short left_side);PG_PASCAL (void) pgFindCtlWord (pg_ref pg, long offset, long PG_FAR *first_byte, long PG_FAR *last_byte, short left_side);PG_PASCAL (void) pgFindPar (pg_ref pg, long offset, long PG_FAR *first_byte, long PG_FAR *last_byte);PG_PASCAL (void) pgFindLine (pg_ref pg, long offset, long PG_FAR *first_byte, long PG_FAR *last_byte);PG_PASCAL (long) pgFindCharType (pg_ref pg, long char_info, long PG_FAR *offset, pg_byte_ptr the_byte);Miscellaneous UtilitiesPG_PASCAL (long) pgGetChangeCtr (pg_ref pg);PG_PASCAL (long) pgSetChangeCtr (pg_ref pg, long ctr);PG_PASCAL (void) pgTextRect (pg_ref pg, select_pair_ptr range, short want_scroll, short want_scaled, rectangle_ptr rect);PG_PASCAL (void) pgCharacterRect (pg_ref pg, long position, short want_scrolled, short want_scaled, rectangle_ptr rect);PG_PASCAL (long) pgPtToChar (pg_ref pg, co_ordinate_ptr point, co_ordinate_ptr offset_extra);PG_PASCAL (short) pgPtInView (pg_ref pg, co_ordinate_ptr point, co_ordinate_ptr offset_extra);PG_PASCAL (long) pgTotalTextHeight (pg_ref pg, short paginate);PG_PASCAL (void) pgPaginateNow (pg_ref pg, long paginate_to, short use_best_guess);PG_PASCAL (void) pgSelectToShape (pg_ref pg, memory_ref select_shape, short should_draw);PG_PASCAL (void) pgInvalSelect (pg_ref pg, long select_from, long select_to);Pagination SupportPG_PASCAL (void) pgGetDocInfo (pg_ref pg, pg_doc_ptr doc_info);PG_PASCAL (void) pgSetDocInfo (pg_ref pg, pg_doc_ptr doc_info, short should_draw);00020000080000003557 7FA,Scaling & PrintingPG_PASCAL (void) pgSetScaling (pg_ref pg, pg_scale_ptr scale_factor, short draw_mode);PG_PASCAL (void) pgGetScaling (pg_ref pg, pg_scale_ptr scale_factor);PG_PASCAL (void) pgScaleLong (long scale_factor, long origin, long PG_FAR *value);PG_PASCAL (void) pgScalePt (pg_scale_ptr scale_factor, co_ordinate_ptr pt);PG_PASCAL (void) pgScaleRect (pg_scale_ptr scale_factor, rectangle_ptr rect);PG_PASCAL (void) pgScaleRectToRect (pg_scale_ptr scale_factor, rectangle_ptr src_rect, rectangle_ptr target_rect, co_ordinate_ptr offset_extra);PG_PASCAL (long) pgPrintToPage (pg_ref pg, graf_device_ptr target, long starting_position, rectangle_ptr page_rect, short draw_mode);PG_PASCAL (short) pgNumPages (pg_ref pg, rectangle_ptr page_rect);PG_PASCAL (long) pgFindPage (pg_ref pg, short page_num, rectangle_ptr page_rect);File I/O SupportPG_PASCAL (void) pgInitStandardHandlers (pg_globals_ptr globals);PG_PASCAL (void) pgSetHandler (pg_globals_ptr globals, pg_handler_ptr handler);PG_PASCAL (short) pgGetHandler (pg_globals_ptr globals, pg_handler_ptr handler);PG_PASCAL (short) pgSaveDoc (pg_ref pg, long PG_FAR *file_position, pg_file_key_ptr keys, pg_short_t num_keys, file_io_proc write_proc, file_ref filemap);PG_PASCAL (short) pgReadDoc (pg_ref pg, long PG_FAR *file_position, pg_file_key_ptr keys, pg_short_t num_keys, file_io_proc read_proc, file_ref filemap);“Walker” FunctionsPG_PASCAL (void) pgPrepareStyleWalk (paige_rec_ptr pg, long offset, style_walk_ptr walker);PG_PASCAL (short) pgWalkNextStyle (style_walk_ptr walker);PG_PASCAL (short) pgWalkStyle (style_walk_ptr walker, long amount);PG_PASCAL (short) pgSetWalkStyle (style_walk_ptr walker, long position);Mail MergePG_PASCAL (short) pgMergeText (pg_ref pg, style_info_ptr matching_style, style_info_ptr mask, style_info_ptr AND_mask, long ref_con, short draw_mode);PG_PASCAL (void) pgRestoreMerge (pg_ref pg, short revert_original, short draw_mode);Function Pointers (“Hook” Definitions)typedef void PG_FAR *pg_proc;0002000006A700003D51 6A1,typedef PG_PASCAL (void) (*line_measure_proc) (void* pg, pg_measure_ptr measure);typedef PG_PASCAL (short) (*line_adjust_proc) (void* pg, text_block_ptr block, point_start_ptr starts, pg_short_t num_starts, rectangle_ptr line_fit, void *par_format);typedef PG_PASCAL (short) (*hyphenate_proc) (void* pg, text_block_ptr block, void *styles, pg_byte_ptr block_text, long line_begin, long *line_end, long *positions, short *char_types);typedef PG_PASCAL (void) (*hilite_rgn_proc) (void* pg, t_select_ptr selections, pg_short_t select_qty, shape_ref rgn);typedef PG_PASCAL (void) (*draw_hilite_proc) (void* pg, shape_ref rgn);typedef PG_PASCAL (void) (*draw_cursor_proc) (void* pg, t_select_ptr select, short verb);typedef PG_PASCAL (void) (*text_load_proc) (void* pg, text_block_ptr text_block);typedef PG_PASCAL (void) (*pt2_offset_proc) (void* pg, co_ordinate_ptr point, short no_half_chars, t_select_ptr selection);typedef PG_PASCAL (void) (*font_init_proc) (void* pg, font_info_ptr info);typedef PG_PASCAL (void) (*style_init_proc) (void* pg, void *style, font_info_ptr font);typedef PG_PASCAL (void) (*install_font_proc) (void* pg_globals, void *style, font_info_ptr font, short include_offscreen);typedef PG_PASCAL (void) (*special_char_proc) (void* pg, void* walker, pg_byte_ptr data, pg_short_t offset, pg_short_t length, draw_points_ptr draw_position, long extra, short draw_mode);typedef PG_PASCAL (void) (*draw_scroll_proc) (void* pg, shape_ref update_rgn, co_ordinate_ptr scroll_pos);typedef PG_PASCAL (void) (*bitmap_modify_proc) (void* pg, graf_device_ptr bits_port,short post_call, rectangle_ptr bits_rect, co_ordinate_ptr screen_offset, long text_position);000200000606000043F2 600,typedef PG_PASCAL (void) (*wait_process_proc) (void* pg, short wait_verb, long progress_ctr, long completion_ctr);typedef PG_PASCAL (void) (*draw_page_proc) (paige_rec_ptr pg, shape_ptr page_shape, pg_short_t r_qty, pg_short_t page_num, co_ordinate_ptr vis_offset);typedef PG_PASCAL (void) (*measure_proc) (void* pg, void *style, font_info_ptr font, pg_byte_ptr data, long length, pg_short_t slop, long *positions, short *types, long current_offset);typedef PG_PASCAL (short) (*merge_proc) (void* pg, void *style, pg_byte_ptr text_data, pg_short_t length, text_ref merged_data, long ref_con);typedef PG_PASCAL (long) (*track_control_proc) (void* pg, void *style, select_pair_ptr text_range, co_ordinate_ptr track_point, pg_byte_ptr text, long length, co_ordinate_ptr top_left_screen_point, short modifiers);typedef PG_PASCAL (short) (*char_info_proc) (void* pg, void* walker, pg_byte_ptr data, long local_offset);typedef PG_PASCAL (void) (*text_draw_proc) (void* pg, void* walker, pg_byte_ptr data, pg_short_t offset, pg_short_t length, draw_points_ptr draw_position, long extra, short draw_mode);typedef PG_PASCAL (void) (*dup_style_proc) (void* pg, void *style);typedef PG_PASCAL (void) (*delete_style_proc) (void* pg, void *style);typedef PG_PASCAL (void) (*copy_text_proc) (void* pg, void *style, long style_position, long text_position, pg_byte_ptr text, long length);typedef PG_PASCAL (void) (*delete_text_proc) (void* pg, void *style, long style_position, long text_position, pg_byte_ptr text, long length);000200000648000049F2 642,typedef PG_PASCAL (short) (*setup_insert_proc) (void* pg, void* to_be_inserted, long position);typedef PG_PASCAL (void) (*par_glitter_proc) (void* pg, void *par_style, point_start_ptr line_pts, long block_begin, pg_short_t first_pt, pg_short_t last_pt, co_ordinate_ptr offset_extra);typedef PG_PASCAL (void) (*line_glitter_proc) (void* pg, void *par_style, point_start_ptr line_pts, long block_begin, pg_short_t first_pt, pg_short_t last_pt, co_ordinate_ptr offset_extra);typedef PG_PASCAL (long) (*tab_measure_proc) (void *pg, void *walker, long cur_pos, long line_left, pg_byte_ptr text, pg_short_t text_length, long PG_FAR *char_positions, pg_short_t PG_FAR *tab_rec_info);typedef PG_PASCAL (void) (*tab_draw_proc) (void* pg, void *walker, tab_stop_ptr tab, draw_points_ptr draw_position);typedef PG_PASCAL (void) (*dup_par_proc) (void* pg, void *par_style);typedef PG_PASCAL (void) (*delete_par_proc) (void* pg, void *par_style);typedef PG_PASCAL (short) (*file_io_proc) (void* data, short verb, long PG_FAR *position, long PG_FAR *data_size, file_ref filemap);typedef PG_PASCAL (void) (*pg_handler_proc) (void* pg, pg_file_key key, memory_ref key_data, long PG_FAR *element_info, memory_ref aux_data);Summary of Structure & Definitions#definesCharacter bits#define NO_WRAP_BIT 0x00000001 /* Wraps only on <CR> or <LF> */#define NO_LF_BIT 0x00000002 /* <LF> char ignored */#define NO_EDIT_BIT 0x00000008 /* No editing (display only) */#define NO_HILITE_BIT 0x00000010 /* Cannot be selected */#define NO_HIDDEN_TEXT_BIT 0x00000040 /* Do not display hidden text */00020000066600005034 660,#define SHOW_INVIS_CHAR_BIT 0x00000080 /* Show invisible character(s) active */Internal attributes#define DEACT_BIT 0x00010000 /* PAIGE is deactivated (won't hilite) */#define PERM_DEACT_BIT 0x00020000 /* App wants no highlighting */#define CARET_BIT 0x00040000 /* Caret is currently showing */#define PRINT_MODE_BIT 0x00200000 /* pg_ref is "printing" */#define MERGE_MODE_BIT 0x00400000 /* pg_ref is in "merge" mode */Values returned from char interrogation#define BLANK_BIT 0x0001 /* Character is blank */#define WORD_BREAK_BIT 0x0002 /* Word breaking char */#define WORD_SEL_BIT 0x0004 /* Word select char */#define SOFT_HYPHEN_BIT 0x0008 /* Soft hyphen char */#define INCLUDE_BREAK_BIT 0x0010 /* Word break but include with word */#define INCLUDE_SEL_BIT 0x0020 /* Select break but include with word */#define CTL_BIT 0x0040 /* Char is a control code */#define INVIS_ACTION_BIT 0x0080 /* Char is not a display char, but arrow, bs, etc. */#define PAR_SEL_BIT 0x0100 /* Char breaks a paragraph */#define LINE_SEL_BIT 0x0200 /* Char breaks a line (soft CR) */#define TAB_BIT 0x0400 /* Char performs a TAB */#define DECIMAL_CHAR_BIT 0x0800 /* Char is decimal (for decimal tab) */#define FIRST_HALF_BIT 0x1000 /* 1st half of a multi-byte char */#define LAST_HALF_BIT 0x2000 /* Last half of a multi-byte char */#define MIDDLE_CHAR_BIT 0x4000 /* Middle of a multi-byte char run */#define CONTAINER_BRK_BIT 0x8000 /* Break-container bit */Bits passed to pgDragSelect#define EXTEND_MOD_BIT 0x0001 /* Extend the selection */#define WORD_MOD_BIT 0x0002 /* Select whole words only */0002000007E200005694 7DC,#define PAR_MOD_BIT 0x0004 /* Select whole paragraphs only */#define LINE_MOD_BIT 0x0008 /* Highlight whole lines */#define VERTICAL_MOD_BIT 0x0010 /* Allow vertical selection */#define DIS_MOD_BIT 0x0020 /* Enable discontiguous selection */#define STYLE_MOD_BIT 0x0040 /* Select whole style range */#define WORD_CTL_MOD_BIT 0x0080 /* Select "words" delineated with controls */#define NO_HALF_CHARS_BIT 0x0100 /* Click does not go left/right on half chars */Possible bits within point start#define LINE_BREAK_BIT 0x8000 /* Line ends here */#define PAR_BREAK_BIT 0x4000 /* Paragraph ends here */#define SOFT_PAR_BIT 0x2000 /* Soft CR ends line */#define BLOCK_END_BIT 0x1000 /* Whole block ends here */#define LINE_GOOD_BIT 0x0800 /* This line requires no recalc */#define NEW_LINE_BIT 0x0400 /* New line starts here */#define NEW_PAR_BIT 0x0200 /* New paragraph starts here */#define WORD_HYPHEN_BIT 0x0100 /* Draw a hyphen after this text */#define TAB_BREAK_BIT 0x0080 /* Tab char terminates this line */#define CTL_CHARS_BIT 0x0040 /* Chars are "control" style */#define CUSTOM_CHARS_BIT 0x0020 /* Style(s) are known only to app (so don't play games with display) */#define SOFT_BREAK_BIT 0x0010 /* Start breaks on soft hyphen */#define BREAK_CONTAINER_BIT 0x0008 /* Line breaks for next container */#define BREAK_EXCLUDE_BIT 0x0004 /* Line broke for exclusion */#define LINE_HIDDEN_BIT 0x0002 /* Line is invisible (hidden text) */#define TERMINATOR_BIT 0x0001 /* Flagged only as terminator record */Possible result bits from pgPtInView#define WITHIN_VIS_AREA 0x0001 /* Point is within vis region of PAIGE */#define WITHIN_WRAP_AREA 0x0002 /* Point is within wrap shape of PAIGE */#define WITHIN_EXCLUDE_AREA 0x0004 /* Point is within exclusion shape of PAIGE */#define WITHIN_TEXT 0x0008 /* Point is in text area */Possible value(s) set in class_bits for style_info#define CANNOT_HILITE_BIT 0x0001 /* Do not include highlight region in this style */00020000052400005E70 51E,#define CANNOT_BREAK 0x0002 /* Non-breaking style (words can't break) */#define STYLE_IS_CONTROL 0x0004 /* Style is "control" type item */#define GROUP_CHARS_BIT 0x0008 /* All chars are selected as one */#define STYLE_MERGED_BIT 0x0010 /* Style has been merged in "merged mode" */#define STYLE_IS_CUSTOM 0x0020 /* Style is known only to app */#define HILITE_RESTRICT_BIT 0x0040 /* Cannot select outside of of style */#define CANNOT_WRAP_BIT 0x0080 /* Cannot wrap bit (used for tables, etc.) */#define VERTICAL_TEXT_BIT 0x8000 /* Vertical text (* future support *) */Some default font codes#define WINDOW_FONT 0 /* Font used in windows, etc. */#define DEF_FIXED_FONT 1 /* Default fixed-spaced font */#define DEF_PROP_FONT 2 /* Default variable spaced font */#define TIMES_ROMAN 3 /* Times font */#define HELVETICA_FONT 4 /* Helvetica font */#define GOTHIC_FONT 5 /* Gothic font */#define COURIER_FONT 6 /* Courier font */#define SYMBOL_FONT 7 /* Symbol font */Font environment settings#define NAME_IS_CSTR 1 /* Font name is a cstring */#define MAC_FONT 2 /* Font is a Macintosh font */#define WINDOWS_FONT 4 /* Font is a Windows font *//* (other definitions will evolve */Misc. #defines#define SIMPLE_SHAPE_QTY 2 /* Number of rects for a simple shape */0002000005450000638E 53F,#define CURRENT_POSITION -1 /* Insert at current positions */#define TAB_BOUNDS_RELATIVE -1 /* Tab base is relative to wrap bound's left */#define TAB_WRAP_RELATIVE -2 /* Tab base is relative to current wrap edge */#define PG_FUTURE 8 /* Number of long's reserved for future */Text block flags#define NEEDS_CALC 0x0001 /* One or more lines need re-calc */#define NEEDS_PAGINATE 0x0002 /* Needs re-paginatation */#define SOME_LINES_GOOD 0x0004 /* One or more lines are probably OK */#define SOME_LINES_BAD 0x0008 /* Flags means we already tagged bad lines */#define BROKE_BLOCK 0x0010 /* Terminator char deleted */#define ALL_TEXT_HIDDEN 0x0020 /* All text in block is hidden! */#define BOUNDS_GUESSED 0x0040 /* Best guess only has been made for bounds rect */typedefsVerbs for pgInserttypedef enum { key_insert_mode, /* Typing insertion */ key_buffer_mode, /* Typing-buffer insertion */ data_insert_mode /* Raw data insertion */} insertion_mode;Draw verbstypedef enum { draw_none, /* Do not draw at all */ best_way, /* Use most effecient method(s) */ direct_copy, /* Directly to screen, overwrite */ direct_or, /* Directly to screen, "OR" */ direct_xor, /* Directly to screen, "XOR" */ bits_copy, /* Copy offscreen */ bits_or, /* Copy offscreen in "OR" mode */00020000053E000068CD 538, bits_xor /* Copy offscreen in "XOR" mode */} display_mode;Mouse tracking verbstypedef enum { mouse_down, /* First time click */ mouse_moved, /* Mouse moved */ mouse_up /* Mouse up */} mouse_track_mode;Style index definitionstypedef enum { bold_var, italic_var, underline_var, outline_var, shadow_var, condense_var, extend_var, dbl_underline_var, word_underline_var, dotted_underline_var, hidden_text_var, strikeout_var, superscript_var, subscript_var, rotation_var, /* - reserved for rotation feature(s) */ custom_var /* app-defined */} style_index;Super/subscript action verbstypedef enum { baseline_relative, /* Draw from line's baseline */ percent_of_style /* Draw relative to percent of baseline */};Justification modestypedef enum { justify_left, /* Left justify */ justify_center, /* Center justify */ justify_right, /* Right justify */ justify_full, /* Full justify */ force_left, /* Force left (regardless of writing dir.) */ force_right /* Force right (regardless of writing dir.) */} text_alignment;Writing direction modestypedef enum { right_left_direction = -1, /* Right-to-left */ system_direction, /* Direction defined by OS */ left_right_direction /* Left-to-right */} primary_direction;Tab type definitions00020000054B00006E05 545,typedef enum { no_tab, /* none (used to delete and/or report "none") */ left_tab, /* Left tab */ center_tab, /* Center tab */ right_tab, /* Right tab */ decimal_tab /* Decimal tab */} tab_kind;Action verbs of get datatypedef enum { all_data, /* Return all data */ all_text_chars, /* All text that is writing script */ all_roman /* All Roman ASCII chars */};Undo action verbstypedef enum { undo_none, /* Null undo ("can't undo") */ undo_typing, /* Undo key insertion(s) */ undo_delete, /* Undo clear/cut/delete */ undo_paste, /* Undo paste/insert */ undo_format /* Undo text style or par format or font */} undo_verb;Scroll action verbstypedef enum { scroll_none, /* Do not scroll */ scroll_unit, /* Scroll one unit */ scroll_page, /* Scroll one page unit */ scroll_home, /* Scroll to top */ scroll_end /* Scroll to end */} scroll_verb;Cursor state action verbstypedef enum { dont_draw_cursor, /* Do nothing */ toggle_cursor, /* Toggle cursor based on timer */ force_cursor_off, /* Turn cursor off */ force_cursor_on, /* Turn cursor on */ update_cursor /* Redraw cursor per current state */} cursor_mode;File handler keytypedef pg_short_t pg_file_key, PG_FAR *pg_file_key_ptr;Default key handler verbstypedef enum {00020000043C0000734A 436, paige_key, /* PAIGE record info */ text_block_key, /* Text block record */ text_key, /* Text bytes */ line_key, /* Point_start info */ style_run_key, /* Style runs */ par_run_key, /* Paragraph runs */ style_info_key, /* Style_info records */ par_info_key, /* Par_info data */ font_info_key, /* Font_info records */ vis_shape_key, /* PAIGE's vis area */ page_shape_key, /* PAIGE's wrap area */ exclude_shape_key, /* PAIGE's exclude area */ selections_key, /* List of selections */ extra_struct_key, /* Extra stuff from app */ applied_range_key, /* Special applied range for copies */ doc_info_key, /* Document info */ containers_key, /* Container ref_cons key */ exclusions_key, /* Exclusion ref_cons key */ shape_list_key, /* List of shapes */ graph_list_key, /* List of graphics */ unknown_key_key, /* Unrecognized key handler */ unspecified_key, /* Bytes/words/longs, not specific */ exception_key, /* Error handler */ style_init_key, /* Init style procs key */00020000044B00007780 445, par_init_key, /* Init par procs key */ font_init_key, /* Init font key */ PLATFORM_SPECIFIC_KEY /* For app and platform-specific keys */};#define CUSTOM_HANDLER_KEY (PLATFORM_SPECIFIC_KEY + 1024) /* App can use this for keys */Macintosh-specific keystypedef enum { mac_pict_key = PLATFORM_SPECIFIC_KEY, /* Mac Pictures */ mac_control_key, /* Mac Control */ mac_sound, /* Sound record */ mac_quicktime, /* QuickTime pic */ mac_print_key /* Mac print record */};Extend proc verbstypedef enum { pg_new, /* pgNew has been called */ pg_dispose /* About to do a pgDispose */};I/O Verbs typedef enum { io_data_verb, /* Read or write data */ io_get_eof /* Return file size */};Text block feed action verbstypedef enum { use_block, /* Will be using block */ unuse_block, /* No longer using block */ break_block /* Break this block */};Highlight state verbstypedef enum { no_change_verb, /* State stays the same */ activate_verb, /* Set to active mode */ deactivate_verb /* Set to deactive mode */00020000044900007BC5 443,};"Wait function" verbstypedef enum { paginate_wait, /* Long pagination */ copy_wait, /* Long copy */ insert_wait /* Long paste (insert) */};memory_refsSeen by the apptypedef memory_ref pg_ref; /* Reference ID for a PAIGE object */typedef memory_ref shape_ref; /* Memory ref containing a "shape" */typedef memory_ref text_ref; /* Memory ref containing text data */typedef memory_ref line_ref; /* Memory ref containing line info */typedef memory_ref tab_ref; /* Memory ref contain tab records */typedef memory_ref hooks_ref; /* Memory ref for "next_hookset" */typedef memory_ref select_ref; /* Selection points (longs) */typedef memory_ref file_ref; /* File reference (contains machine stuff) */typedef memory_ref undo_ref; /* For Undo support */Additional typedef'd memory_refs (that app won't usually need to see)typedef memory_ref block_ref; /* For text_block arrays */typedef memory_ref format_ref; /* For style record array */typedef memory_ref par_ref; /* Paragraph record array */typedef memory_ref font_ref; /* Font table */00020000042F00008008 429,typedef memory_ref style_ref; /* Style run array */ShapesCoordinate or "Point"typedef struct { long v; /* vertical position */ long h; /* horizontal position */} co_ordinate;typedef co_ordinate PG_FAR *co_ordinate_ptr; /* "FAR" pointer for coordinate */From/To drawing pointtypedef struct { co_ordinate from; /* Draw from */ co_ordinate to; /* Draw to */ long real_offset; /* Actual offset into all text */ long ascent; /* Distance to top of line from baseline */ long descent; /* Distance to bottom of line from baseline */ pg_short_t start_flags; /* Flags from current point_start records */} draw_points;typedef draw_points PG_FAR *draw_points_ptr;Rectangletypedef struct { co_ordinate top_left; /* Top-left of rect */ co_ordinate bot_right; /* Bottom-right of rect */} rectangle;typedef rectangle PG_FAR *rectangle_ptr;typedef rectangle shape; /* Also a "shape" for practical purposes */typedef rectangle_ptr shape_ptr;Shape sectiontypedef struct { pg_short_t r_num; /* Rectangle number (index) */00020000041F00008431 419, long v_position; /* Vertical position (from top) */} shape_section;typedef shape_section PG_FAR *shape_section_ptr;Color variabletypedef struct { unsigned short red; /* Red composite */ unsigned short green; /* Green composite */ unsigned short blue; /* Blue composite */ pg_short_t alpha; /* Optional value (machine dependent) */} color_value;Page shape info record (used for lots of different shape attributes)typedef struct { long attributes; /* Various attributes (see below) */ short page_origin; /* What corner = origin */ co_ordinate repeat_slop; /* Minimum remaining before repeat */ co_ordinate repeat_offset; /* About of "gap" for repeater shapes */ rectangle print_target; /* App can use as printed page size */ rectangle margins; /* Applied page margins (* future enhancement *() */ pg_short_t num_pages; /* Number of "real" pages */ long future[PG_FUTURE]; /* Reserved for future */ long ref_con; /* App can store whatever */} pg_doc_info, PG_FAR *pg_doc_ptr;Page info attributes00020000044A0000884A 444,typdef enum { /* Origin corners for document */ top_left_origin, top_right_origin, bot_right_origin, bot_left_origin};#define V_REPEAT_BIT 0x00000001 /* Shape repeats vertically */#define H_REPEAT_BIT 0x00000002 /* Shape repeats horizontally */#define BOTTOM_FIXED_BIT 0x00000004 /* Shape's bottom does not grow */#define RECTS_DONT_MERGE_BIT 0x00000008 /* Touching rects do not merge */#define NO_CONTAINER_JMP_BIT 0x00000010 /* Can't jump containers */#define MAX_SCROLL_ON_SHAPE 0x00000020 /* Maximum scroll is on shape only */#define CLIP_PAGE_AREA 0x00000040 /* Page area clips text */Text and container informationLine info record (becomes array of screen positions)typedef struct { pg_short_t offset; /* Position into text */ pg_short_t r_num; /* Wrap rectangle record where this sits */ pg_short_t extra; /* Tab record if 0x8000, otherwise full justify value */ short baseline; /* Distance from bottom to draw */ short flags; /* Various attributes flags */ rectangle bounds; /* Point(s) that enclose text piece exactly */ } point_start;00020000044A00008C8E 444,typedef point_start PG_FAR *point_start_ptr;typedef struct { long begin; /* Relative offset beginning */ long end; /* Relative offset ending */ rectangle bounds; /* Entire area this includes */ text_ref text; /* Actual text data */ line_ref lines; /* Point_start run for lines */ short flags /* Used internally by PAIGE */ pg_short_t first_line_num; /* First "line number" */ pg_short_t num_lines; /* Number of lines */ pg_short_t first_par_num; /* First "paragraph number */ pg_short_t num_pars; /* Number of paragraphs */ point_start end_start; /* Copy of ending point_start in block */ tb_append_t user_var; /* Can be used for anything */} text_block;typedef text_block PG_FAR *text_block_ptr; /* "FAR" pointer for text_block */Text style run recordtypedef struct { long offset; /* Absolute text offset */ pg_short_t style_item; /* Index to style records */} style_run;typedef style_run PG_FAR *style_run_ptr; /* "FAR" pointer for style run */Font table record#define FONT_SIZE 64 /* Size of font name */typedef struct {000200000453000090D2 44D, pg_byte name[FONT_SIZE]; /* “Name” of font */ short environs; /* Machine-specific attributes */ short typeface; /* Typography class */ short family_id; /* Font ID code */ short char_type; /* Type of character set ("script" for Mac) */ long machine_var[8]; /* Used for machine-specific purposes */ font_append_t user_var; /* Can be whatever */} font_info;typedef font_info PG_FAR *font_info_ptr; /* "FAR" pointer for font_info */Tab recordtypedef struct { long tab_type; /* Type of tab */ long position; /* Tab position */ long leader; /* Tab leader, or null */ tab_append_t user_var; /* Can be used for anything */} tab_stop;typedef tab_stop PG_FAR *tab_stop_ptr; /* "FAR" pointer for tab record */Pair defining a selection rangetypedef struct { long begin; /* Beginning offset of some text portion */ long end; /* Ending offset of some text portion */} select_pair;typedef select_pair PG_FAR *select_pair_ptr;Record to save character positions, for performancetypedef struct { memory_ref positions; /* Ref that holds positions */00020000042C0000951F 426, memory_ref types; /* Ref that holds char_info stuff */ long offset; /* Last offset set */ long end; /* Ending offset of char widths */} char_widths;Special record passed to the line measure proctypedef struct { short previous_flags; /* Ending flags at last line's end */ short prv_prv_flags; /* Previous flags before above */ short wrap_dimension; /* Bits defining how complex wrap is */ long line_text_size; /* Total use of text in line */ long extra_width; /* Amount of width not used after line calculated */ void PG_FAR *styles; /* Pointer to the style_walk record */ text_block_ptr block; /* Current text block */ point_start_ptr starts; /* Current point start ptr */ pg_short_t starts_ctr; /* Number of starts remaining */ long PG_FAR *char_locs; /* Current character locations */ short PG_FAR *char_types; /* Current character types */ long PG_FAR *positions; /* Original character locations */ short PG_FAR *types; /* Original character types */ rectangle fit_rect; /* Rect in which line must fit */00020000043600009945 430, rectangle actual_rect; /* Resulting rect that encloses new line */ pg_short_t num_starts; /* Number of start records generated */ line_ref starts_ref; /* Memory_ref of starts */ memory_ref tab_info; /* Contans tab_width_info (see below) */ rectangle_ptr wrap_r_begin; /* Top wrap rectangle */ rectangle_ptr wrap_r_end; /* End wrap rectangle (often the same) */ pg_short_t r_num_begin; /* Current wrap-target rectangle */ pg_short_t r_num_end; /* Ending rect of line (for complex wrap) */ pg_short_t end_r; /* Ending record index for wrap rects */ memory_ref exclude_ref; /* Holds "exclusion" rectangles */ long wrap_r_save; /* Saves old bottom (I replace with 0x7FFFFFFF) */} pg_measure, PG_FAR *pg_measure_ptr;typedef struct { long offset; /* Text position relative to start */ long width; /* Effective width when measuring */ pg_short_t extra; /* Info from tab_width proc */ short type; /* Recorded type (record used for other chars) */} tab_width_info, PG_FAR *tab_width_ptr;UndoInternal struct used for Undo records00020000042B00009D75 425,typedef struct { short verb; /* Type of undo (for app's reference) */ short real_verb; /* Internal action verb (could be different) */ pg_ref data; /* Data (different for each verb) */ memory_ref keyboard_ref; /* Used for backspace-key-undo */ format_ref keyboard_styles; /* Styles possibly backspaced */ format_ref keyboard_pars; /* Paragraphs possibly backspaced */ memory_ref applied_range; /* Range to apply Undo */ select_pair alt_range; /* Range for Undo Paste & other things */ select_pair keyboard_delete; /* Delete range for backspace undo */ long ref_con; /* App can set this */} pg_undo;typedef pg_undo PG_FAR *pg_undo_ptr;KeyboardArray of records in keyboard_reftypedef struct { pg_byte text_byte[2]; /* Byte backspaced (1 extra for padding) */ pg_short_t style_item; /* Style (locally indexed) */ pg_short_t par_item; /* Paragraph (locally indexed) */} pg_kb_data;typedef pg_kb_data PG_FAR *pg_kb_ptr;SelectionText selection point record (defines "caret" or visual selection points)typedef struct {0002000004300000A19A 42A, long offset; /* Absolute text offset */ select_pair word_offsets; /* Original word offsets if applicable */ co_ordinate original_pt; /* Original point of selection */ pg_short_t line; /* Point start number */ short caret; /* Offset from left for "caret" */ short flags; /* Contains internal attributes */} t_select;typedef t_select PG_FAR *t_select_ptr;Graf devicePortable "graphics port" or windowtypedef struct { void PG_FAR *machine_var; /* Machine-dependent item */ void PG_FAR *vis_rgn; /* Machine-dependent vis_area region */ void PG_FAR *page_rgn; /* Machine-dependent page_area region */ void PG_FAR *exclude_rgn; /* Machine-dependent exclude_area region */ void PG_FAR *clip_rgn; /* Machine-dependent composite clip region */ co_ordinate scroll_base; /* Last scroll pos clip rgns were built */ long machine_ref; /* Additional ref for machine */ long machine_ref2; /* More info for machine */ memory_ref graf_stack; /* Use to “push” previous stuff */ port_append_t user_var; /* Can be used for whatever */00020000043E0000A5C4 438,} graf_device, PG_FAR *graf_device_ptr; /* "FAR" pointer for graf_device */ScalingScaling factor recordtypedef struct { co_ordinate origin; /* Relative origin */ long scale; /* Scaling (hiword / loword fraction) */} pg_scale_factor, PG_FAR *pg_scale_ptr;Custom procsStyle procs for custom styles:typedef struct { style_init_proc init; /* Initialize style_info */ install_font_proc install; /* Set up "current" font & style */ measure_proc measure; /* Measure char positions */ merge_proc merge; /* Substitute other text */ char_info_proc char_info; /* Return info about a char */ text_draw_proc draw; /* Draw the character(s) draw characters */ dup_style_proc duplicate; /* Style will get duplicated */ delete_style_proc delete_style; /* Style will get deleted */ copy_text_proc copy_text; /* Text of style will be copied */ delete_text_proc delete_text; /* Text of style will be deleted */ setup_insert_proc insert_proc; /* Set up the style for a future insert */ track_control_proc track_ctl; /* Mouse track for "control" type style*/0002000004180000A9FC 412, hooks_ref next_hookset; /* Optional daisy-chain hooks */} pg_style_hooks;Paragraph procs for custom paragraphstypedef struct { par_glitter_proc par_glitter; /* Draw ornaments, paragraph */ line_glitter_proc line_glitter; /* Draw ornaments, line */ tab_measure_proc tab_width; /* Return the tab position */ tab_draw_proc tab_draw; /* Draws leaders */ dup_par_proc duplicate; /* Style will get duplicated */ delete_par_proc delete_par; /* Style will get deleted */ hooks_ref next_hookset; /* Daisy-chained hooks or NULL */} pg_par_hooks;PAIGE general hook recordtypedef struct { line_measure_proc line_proc; /* Measure a line */ line_adjust_proc adjust_proc; /* Adjust a line */ hyphenate_proc hyphenate; /* Hyphenate word */ hilite_rgn_proc hilite_rgn; /* Make highlight region */ draw_hilite_proc hilite_draw; /* Draw (invert) highlight */ text_load_proc load_proc; /* Load text for text_block */ draw_cursor_proc cursor_proc; /* Draw a caret */ pt2_offset_proc offset_proc; /* Find offset matching point */00020000045A0000AE0E 454, font_init_proc font_proc; /* Set up fields in font_info */ special_char_proc special_proc; /* Special character draw proc */ draw_scroll_proc scroll_proc; /* Called to draw during scroll */ bitmap_modify_proc bitmap_proc; /* Modify offscreen draw proc */ wait_process_proc wait_proc; /* Called for long crunches */ hooks_ref next_hookset; /* Linked proc list, if any */} pg_hooks;Character & paragraph formatThe text format struct#define MAX_STYLES 16 /* Maximum # of styles in style_info */typedef struct { short font_index; /* What font this style is in */ short styles[MAX_STYLES]; /* Stylization */ short char_bytes; /* Number of bytes per character - 1 */ short max_chars; /* Maximum chars before new style begins */ short ascent; /* This style’s ascent */ short descent; /* This style’s descent */ short leading; /* Regular leading */ short shift_verb; /* Superscript / Subscript verb */ short class_bits; /* Defines selection & behavior */ short style_sheet_id; /* Used for style sheet features */ color_value fg_color; /* Foreground color */0002000004370000B262 431, color_value bk_color; /* Background color */ long machine_var; /* Machine-specific use */ long pitch; /* Pitch */ long point; /* Point (if different than pitch) */ long left_extra; /* This style’s left leading */ long right_extra; /* This style’s right leading */ long top_extra; /* This style’s top leading */ long bot_extra; /* This style’s bottom leading */ long space_extra; /* Extra pixels for spaces ("fixed" value) */ long char_extra; /* Extra pixels for chars ("fixed" value) */ long user_id; /* Can be used by app to identify custom styles */ long user_data; /* Additional space for app if style is custom */ long user_data2; /* Additional space for app */ long future[8]; /* Reserved for future expansion */ pg_style_hooks procs; /* Contains functions on how to draw */ style_append_t user_var; /* Can be used for anything */ short maintenance; /* (Used internally) */ long used_ctr; /* (used internally) */} style_info;typedef style_info PG_FAR *style_info_ptr; /* "FAR" pointer for style record */0002000004550000B693 44F,Paragraph indent struct (for "ruler" support)typedef struct { long left_indent; /* Left margin (indent) */ long right_indent; /* Right margin (indent) */ long first_indent; /* First-line indent */} pg_indents, PG_FAR *pg_indents_ptr;Paragraph format recordtypedef struct { short justification; /* How text is justified */ short direction; /* Primary text direction */ short style_sheet_id; /* Used for style sheet features */ long def_tab_space; /* Default tab space */ pg_indents indents; /* Indentations */ tab_ref tabs; /* Tab stop information */ long spacing; /* Line spacing */ long leading_extra; /* Extra leading of lines */ long leading_fixed; /* Fixed leading (0 = auto) */ long top_extra; /* Extra space at top */ long bot_extra; /* Extra space at bottom */ long left_extra; /* Extra space at left */ long right_extra; /* Extra space at right */ long user_id; /* Can be used by app to identify custom par styles */ long user_data; /* Additional space for app if par is custom */ long user_data2; /* More space for app */00020000041B0000BAE2 415, long future[PG_FUTURE]; /* Reserved for future enhancement */ pg_par_hooks procs; /* Function pointers */ par_append_t user_var; /* Can be used for anything */ short maintenance; /* (Used internally) */ long used_ctr; /* (used internally) */} par_info;typedef par_info PG_FAR *par_info_ptr; /* "FAR" pointer for par_info */typedef struct { pgm_globals mem_globals; /* Globals for pgMemManager */ long max_offscreen; /* Maximum memory for offscreen */ long max_block_size; /* Max size of text block */ long minimum_line_width; /* Minimum size line width */ long def_tab_space; /* Default tab spacing for pgNew */ pg_short_t line_wrap_char; /* <CR> char */ pg_short_t soft_line_char; /* Soft <CR> char */ pg_short_t tab_char; /* Tab character */ pg_short_t hyphen_char; /* "-" char */ pg_short_t soft_hyphen_char; /* Soft "-" char */ pg_short_t decimal_char; /* "." char (for decimal tabs) */ pg_short_t bs_char; /* Backspace char */ pg_short_t ff_char; /* Formfeed char (used for page breaks) */00020000040E0000BEF7 408, pg_short_t container_brk_char; /* Container break character */ pg_short_t left_arrow_char; /* Left arrow */ pg_short_t right_arrow_char; /* Right arrow */ pg_short_t up_arrow_char; /* Up arrow */ pg_short_t down_arrow_char; /* Down arrow */ pg_short_t text_brk_char; /* Alternate Textblock break */ pg_short_t cr_invis_symbol; /* Char to draw for <CR> invisibles */ pg_short_t lf_invis_symbol; /* Char to draw for <LF> invisibles */ pg_short_t tab_invis_symbol; /* Char to draw for TAB invisibles */ pg_short_t end_invis_symbol; /* Char to draw for end-doc invisibles */ pg_short_t cont_invis_symbol; /* Container break symbol */ pg_short_t space_invis_symbol; /* Char to draw for SPACE invisibles */ pg_short_t unknown_symbol; /* Char to draw for unknown invisibles */ long invis_font; /* Machine-specific invisible char font */ long rsrv_char1; /* - reserved for future expansion - */ long rsrv_char2; /* - reserved for future expansion - */ memory_ref file_handlers; /* Contains file I/O handlers */0002000004210000C2FF 41B, memory_ref error_handlers; /* List of error result handlers */ graf_device current_port; /* Current graphics device */ graf_device offscreen_port; /* Used for offscreen drawing */ rectangle offscreen_target; /* " " " " */ void PG_FAR *offscreen_buf; /* Used for offscreen */ short offscreen_enable; /* TRUE if in offscreen mode */ short color_enable; /* Used to detect color screens */ short system_version; /* Used to know what system */ long machine_const; /* Can be used by your machine */ memory_ref machine_specific; /* Can hold whatever, MACHINE-DEPENDENT! */ extend_proc pg_extend; /* Used by add-ons */} pg_globals, PG_FAR *pg_globals_ptr;File handlersFile handler record struct An array of these exists in globals->file_handler_reftypedef struct { pg_file_key key; /* Parameter file key */ pg_handler_proc read_handler; /* Called to handle read-in data */ pg_handler_proc write_handler; /* Called to handle write-in data */} pg_handler, PG_FAR *pg_handler_ptr;The basic PAIGE record00020000043B0000C71A 435,typedef struct { pg_globals_ptr globals; /* Pointer to global vars */ long version; /* Version this was created with */ long platform; /* Platform ID created on */ long flags; /* Attributes (set in pgNew) */ long t_length; /* Total length of text */ pg_short_t resolution; /* Fundamental resolution */ select_pair first_word; /* Boundaries of original word/par/line selection */ select_pair last_word; /* Boundaries of previous word/par/line selection */ long tab_base; /* Left edge used for measuring tabs */ co_ordinate scroll_pos; /* Scrolled position */ rectangle doc_bounds; /* Physical max bounds of doc */ long doc_top; /* Top vertical position */ long doc_bottom; /* Bottom point (might be different than doc_height) */ pg_scale_factor scale_factor; /* Scaling factor */ short unit_h; /* Scroll unit_h */ short unit_v; /* Scroll unit_v */ short append_h; /* Extra pixel append for h-scroll */ short append_v; /* Extra pixel append for v-scroll */ short last_h; /* Last h-scroll from pgGetScrollValues */0002000004100000CB4F 40A, short last_v; /* Last v-scroll from pgGetScrollValues */ short last_max_h; /* Last max-h from pgGetScrollValues */ short last_max_v; /* Last max-v from pgGetScrollValues */ pg_short_t insert_style; /* Text style for insertion */ pg_short_t num_selects; /* Number of selections */ long scroll_align_h; /* Alignment for horizontal scroll */ long scroll_align_v; /* Alignment for vertical scroll */ shape_section last_drawn_bottom; /* Last bottom point drawn in wrap area */ shape_section last_drawn_top; /* Last top point drawn in wrap area */ short io_result; /* Result from last I/O function */ graf_device port; /* Default graphics port to draw to */ pg_ref myself; /* My own pg_ref */ select_ref select; /* Selection points */ shape_ref vis_area; /* Visual area */ shape_ref exclude_area; /* Area to exclude text */ shape_ref wrap_area; /* Intersection of page/exclude */ shape_ref hilite_rgn; /* Area for highlight draw */ shape_ref temp_rgn; /* Used to draw partial highlights */0002000004840000CF59 47E, block_ref t_blocks; /* Text block array */ format_ref t_formats; /* Text style records */ par_ref par_formats; /* Paragraph style records */ font_ref fonts; /* Font table */ style_ref t_style_run; /* Run for styles */ style_ref par_style_run; /* Run for paragraph styles */ pg_hooks procs; /* General hooks */ char_widths last_locs[3]; /* Last char widths computed */ unsigned long timer_info; /* Used for caret toggles */ long last_key_check; /* Last time key insert checked bad blocks */ pg_ref merge_save; /* List of "pushed" merged text or NULL */ long change_ctr; /* Changes counter */ long mem_id; /* Common ID all memory_refs were created */ memory_ref key_buffer; /* Buffer's chars for pgInsert */ short key_buffer_mode; /* Display mode for buffered keys */ memory_ref applied_range; /* Used for copy/pastes */ memory_ref page_list; /* List of shapes (* future enhancement *) */ memory_ref exclusions; /* List of exclusion refCons */ pg_doc_info doc_info; /* Info about the page shape */ memory_ref containers; /* List of container refCons */ long lock_id; /* For asynchronous locks */0002000004A50000D3D7 49F, memory_ref extra_stuff; /* Used by apps and add-ons */} paige_rec;typedef paige_rec PG_FAR *paige_rec_ptr;Low-level Structs & UtilitiesRecord to make it easier to advance through stylestypedef struct { long current_offset; /* Current style offset position */ style_info_ptr cur_style; /* Current text style */ par_info_ptr cur_par_style; /* Current paragraph style */ font_info_ptr cur_font; /* Current font record */ style_run_ptr next_style_run; /* Next style run record */ style_run_ptr next_par_run; /* Next paragraph run record */ style_run_ptr prev_style_run; /* Previous style run */ style_run_ptr prev_par_run; /* Previous paragraph style run */ style_info_ptr style_base; /* used internally */ par_info_ptr par_base; /* used internally */ font_info_ptr font_base; /* used internally */ pg_short_t last_font; /* used internally */ long t_length; /* Text size from original pg_ref */} style_walk;typedef style_walk PG_FAR *style_walk_ptr;NOTE: This interface is subject to change without notice. It was current as of December 17, 1993. This interface is Copyright © 1993-1994 by DataPak Software, Inc. All rights reserved.000400000FBA0000024E012E362164311011270128514E214F0161416701A641B001E741F302124224025B426D02A442B0031E432B0360536D236E038243870451445A047C448604B544C004D054DD04F044FA0544454E0586459506644671072B5747075A476407C547CF0830483C089148A008C048CF08FF490C0961497109C249D20A004A0F0A2E4A3B0A754A810AC14ACC0B2B4B380BAC4BBF0C0B4C170C424C4F0C8D4C9E0CF44D010D414D4C0D9D4DA80DFE4E0C0E4B4E5B0E964EA40EE14EED0F8B4F990FB25FCE0FE14FEA010854108D01111411170113841146011AD411BE0121A4122B0128441292012E0412EE01356413680139B413AD0140A4141B014704147E014E1414F0015104151F0156541575015A9415B9015C8515D7015EA415F801673416830172341731017A9417BC018074181A0188241896018DF418EB019614196D019DF419EC01A5F41A6C01AE941AF701B1641B2501B5C41B6901B9E41BAC01BE241BF201C2441C3701C6741C7601CD941CEA01D3241D4101D8741D9701DCC51DD801DEC41DF601E4A41E5701E8841E9301EB441EBE01F0441F1101F8141F9001FEC41FFB0204E4205B02092420A2020D2420E0021004210D0215042160021B4421C60222242234022775228D7228E022A2422A7022F6422FC0233A423440238F42396023FA424020245642463024A2424B50252F425350258A42595025B7425C6025F5426040262642634026465265C0266F4267B026AA426B6026D6426DE0273D42749027C3427CF0283E4284B0287A42886029314293D029A6529AF029C2429D302A2E42A3F02ABB42ACC02B3742B4802B9C42BA402BF442C0502C3642C4402CB642CC602D0142D0F02D3F52D5D02D7742D8402DD542DE402E0342E1102E6A42E7402EA742EB102EF742F0102F2142F2B02F9A42FA7030164301F0307D43087030E5430F30313D53154031674317503194431A2031CB431D50324643255032BF432C90331F433290337E4338F033BE433CB03413434220346D4347A034AD534BF234C0034D2434DE035134351F03557535690357C43588035D4435E00361B436260366F43678036BC436C70370B4371C0379C437A9038234382D0386643870038A9538B9038CC438E20390E4391A039604396C039B2439BB03A4E43A5703AD853AEA03AFD43B0F03B5A43B6903B9543BA003BDA43BE803C2E43C3903CC543CD303D0A53D3023D3103D6D43D7E03DC143DD103E6B43E7903F2443F3303F9C43FAC03FE543FF50403F4404D04092440A10410F4411D0415B4416A041B5441C60423244243042EF442FF0435B4436D0440E4441F04482444900451B44527045D7445E10466644678047404474E047AB447B90486544873048AA448BB048F2449000497F4498F04A0F44A2004A6F44A7F04B2D44B3E04BEC44BFC04CBA44CC704D3044D3C04D7744D8604DC244DCE04E4744E5604EBC14EDE64EDF04EE054EE904EEA44EF80508645099051E84520F056034561E0586E4588E05CA345CC705DE845E1A060B6460CD06259462720633A46348064AB464BB066A0566A8066AA466BC0676C467760691046924069B3469CA06B2A46B4606BD146BE406D2046D3706DF046E0406EE146EF906F9746FA8070B7470CA071AF471C8072D5572E6073214733A078754788C079764798707A6347A7F07B1347B2807BC947BDE07C6757C7307C7447C8307EDE47F230803E58045080464805B0811A4812F082BF482C8083DE483EB084AC484BA085A2485E6088354884908AB258AD108AD248B0508F9A48FAF0907E4908F0929C492A6093C0493DF094A3494D6095C3495F109D4959D4E09D4F49D740A00E5A0170A0184A0380A1355A13F0A1404A1880A3165A3220A3234A3450A6115A6190A61A4A62F0A6D25A6DF0A6E04A6FE0AA4A4AA6F0AC294AC420AF955AFB20AFB34AFC90B6964B6C30B78C4B7A30C5B25C5BF0C5C04C5DA0C7025C7190D44C5D46A0D46B4D49D0D7BB2D8782000500000097000000160C64B110A12894EBC84EE077EDE67F24588CB10890C11894FF8998D89E2E8A265A1404A1893C86012C8FB3CD3E2CD851D7BB0D87800006000001C5000000081Å0Å920¡FFFFÅÅ0ÇÇ900000¬
- 1210¬¡12410¡FFFFÅÅ0101200000¬-100000¬40¬-10¡A20¡FFFFÅÅ010900000¬-100000¬50¬-10¡A20¡FFFFÅÅ0ÇÇ900000¬-100000¬20¬¡10Å920¡FFFFÅÅ010900000¬-100000¬FE0¬-10¡C310¡FFFFÅÅ010C00000¬-100000¬210¬-10¡10Å12420¡FFFFÅÅ0101200000¬-100000¬10¬-10¡10ÅC310¡FFFFÅÅ010C00000¬-100000¬10¬-10¡0007000005E2000000130ÅÅ40¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬20¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡40¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬20¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡3010¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç10Å20-20¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç10ÅDA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡40¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç10ÅDA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1CE0Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1C70Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1C70Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1C80Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1C80Ç¡DA0-D60¬10¬71150Ç1480Ç1750Ç1AD0Ç31CC0Ç1910Ç1C80Ç¡DA0-D60¬10¬71150Ç1480Ç1AD0Ç31CC0Ç1910Ç1CE0Ç1660Ç00080000009D00000002 40,Geneva 2030¬